Java-তে Multicast Socket ব্যবহার করে Multicast Communication করার উদাহরণ দেয়া হলো। Multicast socket দিয়ে একাধিক ক্লায়েন্টের সাথে একই সময়ে ডেটা পাঠানো সম্ভব হয়। এটি একটি খুবই কার্যকরী পদ্ধতি যখন একাধিক ডিভাইস একই ডেটা গ্রহণ করতে চায়, যেমন স্ট্রিমিং ডেটা বা সেমিনার সেশনে একাধিক দর্শক।
নিচে Multicast Socket Communication এর উদাহরণ দেওয়া হয়েছে:
১. Multicast Server (Multicast Sender)
এই সার্ভারটি একটি multicast গ্রুপে ডেটা পাঠাবে।
import java.net.*;
import java.io.*;
public class MulticastServer {
public static void main(String[] args) {
try {
// Multicast গ্রুপের IP অ্যাড্রেস এবং পোর্ট নম্বর
InetAddress group = InetAddress.getByName("230.0.0.0");
int port = 1234;
// MulticastSocket তৈরি
MulticastSocket socket = new MulticastSocket();
String message = "Hello, Multicast Clients!";
byte[] buffer = message.getBytes();
// DatagramPacket তৈরি এবং পাঠানো
DatagramPacket packet = new DatagramPacket(buffer, buffer.length, group, port);
socket.send(packet);
System.out.println("Message sent to the multicast group.");
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
২. Multicast Client (Multicast Receiver)
এই ক্লায়েন্টটি multicast গ্রুপ থেকে ডেটা গ্রহণ করবে।
import java.net.*;
import java.io.*;
public class MulticastClient {
public static void main(String[] args) {
try {
// Multicast গ্রুপের IP অ্যাড্রেস এবং পোর্ট নম্বর
InetAddress group = InetAddress.getByName("230.0.0.0");
int port = 1234;
// MulticastSocket তৈরি এবং গ্রুপে যোগদান
MulticastSocket socket = new MulticastSocket(port);
socket.joinGroup(group);
byte[] buffer = new byte[256];
DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
System.out.println("Waiting for message...");
// ডেটা গ্রহণ করা
socket.receive(packet);
String received = new String(packet.getData(), 0, packet.getLength());
System.out.println("Received message: " + received);
socket.leaveGroup(group);
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
উদাহরণ ব্যাখ্যা:
- MulticastServer:
- এটি একটি multicast গ্রুপ
230.0.0.0(Multicast address range: 224.0.0.0 to 233.255.255.255) এবং পোর্ট1234ব্যবহার করে ডেটা পাঠায়। - এটি
MulticastSocketতৈরি করে এবং একটিDatagramPacketব্যবহার করে গ্রুপের কাছে একটি বার্তা পাঠায়।
- এটি একটি multicast গ্রুপ
- MulticastClient:
- এটি একই multicast গ্রুপ
230.0.0.0এবং পোর্ট1234তে যুক্ত হয়। - এটি একটি
MulticastSocketতৈরি করে, এবং গ্রুপে যোগ দেয়। - এরপর এটি ডেটা গ্রহণ করে এবং যে বার্তাটি পাঠানো হয়েছে তা প্রিন্ট করে।
- এটি একই multicast গ্রুপ
Multicast Communication এর বৈশিষ্ট্য:
- Multicast Group: এটি একটি গ্রুপ অ্যাড্রেস ব্যবহার করে, যা একাধিক ক্লায়েন্টকে একই বার্তা পাঠাতে সাহায্য করে।
- Efficiency: একাধিক ক্লায়েন্টকে একসাথে ডেটা পাঠানোর জন্য multicast সেকেন্ডে একাধিক রিসিভারকে একটি ডেটা পাঠানোর সুযোগ প্রদান করে, যা ব্রডকাস্টের চেয়ে অনেক কার্যকরী।
- Socket Join and Leave: ক্লায়েন্টগুলি
joinGroup()মেথড দিয়ে গ্রুপে যোগ দেয় এবংleaveGroup()মেথড দিয়ে গ্রুপ ছেড়ে যায়।
এটি একটি মৌলিক উদাহরণ, তবে বাস্তব জীবনে আরও উন্নত ফিচার এবং নিরাপত্তা নিশ্চিত করতে TTL (Time-to-Live), SocketTimeout, এবং অন্যান্য কনফিগারেশন সমর্থন ব্যবহার করা হতে পারে।
Read more